package com.springframework.boot.awesome.annotation.ftp;

import com.springframework.boot.awesome.annotation.arch.exception.*;
import com.jcraft.jsch.JSchException;
import com.jcraft.jsch.SftpException;

import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
import java.util.concurrent.TimeoutException;

public interface MonitorFTPFileExceptionHandler {
   void handleFTPUrlIllegalException(FTPUrlIllegalException e);
   void handleMonitorClassNotFoundException(MonitorClassNotFoundException e);
   void handleMonitorClassNotImplementException(MonitorClassNotImplementException e);
   void handleInterruptedException(InterruptedException e);
   void handleTimeoutException(TimeoutException e);
   void handleClassNotFoundException(ClassNotFoundException e);
   void handleIllegalAccessException(IllegalAccessException e);
   void handleInstantiationException(InstantiationException e);
   void handleInvocationTargetException(InvocationTargetException e);
   void handleIPErrorException(IPErrorException e);
   void handleJSchException(JSchException e);
   void handleIOException(IOException e);
   void handleFTPCloseErrorException(FTPCloseErrorException e);
   void handleUserNameOrPasswordErrorException(UserNameOrPasswordErrorException e);
   void handleSftpException(SftpException e);
   void handlePortErrorException(PortErrorException e);
   void handleFrequencyLimitException(FrequencyLimitException e);
   void handleTimeoutLimitException(TimeoutLimitException e);
}
